Widening Operator. Fixpoint Approximation with Widening. A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (y) v (x y)

Size: px
Start display at page:

Download "Widening Operator. Fixpoint Approximation with Widening. A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (y) v (x y)"

Transcription

1 EXPERIENCE AN INTRODUCTION WITH THE DESIGN TOF A SPECIAL PURPOSE STATIC ANALYZER ABSTRACT INTERPRETATION P. Cousot Patrick.Cousot@ens.fr Biarritz IFIP-WG meeting (1) (4) mars 2003, Hotel Miramar, Biarritz, France ľ P. Cousot, all rights reserved. 3. Application to Static Analysis Widening Operator A widening operator 2 L ˆ L 7``! L is such that: Correctness: - 8x; y 2 L : (x) v (x y) - 8x; y 2 L : (y) v (x y) Convergence: - for all increasing chains x 0 v x 1 v..., the increasing chain defined by y 0 = x 0,..., y i+1 = y i x i+1,... is not strictly increasing. An Introduction to Abstract Interpretation, ľ P. Cousot, 25/3/03 3:1/58 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:58/121 J []? I Idx, Toc Fixpoint Approximation with Widening 3.5 Fixpoint Approximation with Convergence Acceleration by Widening/Narrowing The upward iteration sequence with widening: X 0 =?- (infimum) X i+1 = X i if F ( X i ) v X i = X i F ( X i ) otherwise is ultimately stationary and its limit à is a sound upper approximation of lfp?- F : lfp?- F v à P. Cousot, R. Cousot: Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. PLILP, LNCS 631, 1992: , Springer. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:57/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:59/121 J []? I Idx, Toc

2 > gfp F lfp F?- F L >; Fixpoint Approximation with Widening/Narrowing 9 2 >= >; 9 2 >= L 9 2 >= >; F X 2 = X 1 F ( X 1 ) = > = ˇX 0 ˇX 1 = ˇX 0 F ( ˇX 0 ) =gfpf =lfpf X 1 = X 0 F ( X 0 ) X 0 =?- An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:60/121 J []? I Idx, Toc Interval Widening with threshold set The threshold set T is a finite set of numbers (plus +1 and `1), [a; b] T [a 0 ;b 0 ]=[if a 0 <athen maxf 2 T j» a 0 g else a; if b 0 >bthen minfh 2 T j h b 0 g else b] : Examples (intervals): - sign analysis: T = f`1; 0; +1g; - strict sign analysis: T = f`1; `1; 0; +1; +1g; T is a parameter of the analysis. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:62/121 J []? I Idx, Toc Interval Widening L = f?g [ f[ ; u] j 2 Z [f`1g^u 2 Z [f+1g ^» ug The widening extrapolates unstable bounds to infinity:? X = X X? = X [ 0 ;u 0 ] [ 1 ;u 1 ]=[if 1 < 0 then `1else 0 ; if u 1 > u 0 then + 1 else u 0 ] Not monotone. For example [0; 1] v [0; 2] but [0; 1] [0; 2] = [0; +1] 6v [0; 2] = [0; 2] [0; 2] Non-Existence of Finite Abstractions Let us consider the infinite family of programs parameterized by the mathematical constants n 1, n 2 (n 1» n 2 ): X := n 1 ; while X» n 2 do X := X +1; od An interval analysis with widening/narrowing will discover the loop invariant X 2 [n 1 ;n 2 ]; To handle all programs in the family without false alarm, the abstract domain must contain all such intervals; ) No single finite abstract domain will do for all programs! An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:61/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:63/121 J []? I Idx, Toc

3 General-Purpose Static Program Analyzers 3.8 Application to the static analysis of critical real-time synchronous embedded software To handle infinitely many programs for non-trivial properties, a general-purpose analyser must use an infinite abstract domain 20 ; Such analyzers are huge for complex languages hence very costly to develop but reusable; There are always programs for which they lead to false alarms; Although incomplete, they are very useful for verifying/testing/ debugging. 20 P. Cousot & R. Cousot. Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation. PLILP 92. LNCS 631, pp Springer. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:88/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:90/121 J []? I Idx, Toc Parametric Specializable Static Program Analyzers General-Purpose versus Specializable Static Program Analysis The abstraction can provably be tailored to one program without any false alarm [SARA 00]; So, may be, the abstraction can be tailored to significant classes of programs (e.g. critical synchronous real-time embedded systems); This would lead to very efficient analyzers with zero (or almost no) false alarm even for large programs. [SARA 00] P. Cousot. Partial Completeness of Abstract Fixpoint Checking, invited paper. In 4 th Int. Symp. SARA 2000, LNAI1864,Springer,pp.1 25,2000. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:89/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:91/121 J []? I Idx, Toc

4 The Class of Periodic Synchronous Programs declare volatile input, state and output variables; initialize state variables; loop forever -readvolatileinputvariables, -computeoutputandstatevariables, -writetovolatileoutputvariables; wait for next clock tick; end loop All computations originates from non-linear control theory; The only allowed interrupts are clock ticks; Execution time of loop body less than a clock tick [4]. AFirstExperienceofParametric Specializable Static Program Analyzers C programs: safety critical embedded real-time synchronous software for non-linear control of complex systems; LOCs, 1300 global variables (booleans, integers, floats, arrays, macros, non-recursive procedures); Implicit specification: absence of runtime errors (no integer/floating point arithmetic overflow, no array bound overflow); Comparative results (commercial software): - 70 false alarms, 2 days, 500 Megabytes; [4] C. Ferdinand, R. Heckmann, M. Langenbach, F. Martin, M. Schmidt, H. Theiling, S. Thesing, and R. Wilhelm. Reliable and precise WCET determination for a real-life processor. ESOP (2001), LNCS2211, An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:92/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:94/121 J []? I Idx, Toc First Experience Report First Experience [5] B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A.Miné,D.Monniaux,and X. Rival. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones, LNCS2566,pages Springer, Initial design: 2h, 110 false alarms (general purpose intervalbased analyzer); Main redesign: - Reduced product with weak relational domain with time; Parametrisation: - Hypotheses on volatile inputs; - Staged widenings with thresholds; - Local refinements of the parameterized abstract domains; Results: No false alarm, 14s, 20 Megabytes. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:93/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:95/121 J []? I Idx, Toc

5 Example of a Simple Idea That Does Not Scale Up Represent abstract environments M = X 7``! D where D is the abstract domain as arrays/functional arrays; O(1) to access/change the abstract value of an identifier but, most variables are locally unchanged so a lot of time is lost in unions P [ P = P and widenings P P = P ; Solution: shared balanced binary tree (maps in CAML); O(ln n) among n to access/change the abstract value of an identifier but, most of the tree is unchanged in unions and widenings (gained factor 7 in time). Performance: Space and Time Space = O(LOCs) Time = O(LOCs ˆ (ln(locs)) 1:5 ) Time (minutes) k 100 k 150 k 200 k 250 k 300 k Size (KiloLOCs) An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:96/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:98/121 J []? I Idx, Toc Example of refinement: trace partitionning Control point partitionning: Second Experience Trace partitionning: Fork Join [6] B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A.Miné,D.Monniaux,and X. Rival. A static analyzer for large safety critical software. ACM PLDI 03, San Diego, CA, June 2003, to appear. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:97/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:99/121 J []? I Idx, Toc

6 ASecondExperienceofParametric Specializable Static Program Analyzers Same C programs for synchronous non-linear control of very complex systems; 132,000 lines of C, 75,000 LOCs after preprocessing, 10,000 global variables, over 21,000 after expansion of small arrays; Same implicit specification: absence of runtime errors + no modulo arithmetic; Analyzer of first experience: 30mn, 1,200 false alarms; Example of Difficulty: Semantics Problems For C programs, the abstract transfer functions have to take the machine-level semantics into account; For example: - floating-point arithmetic with rounding errors as opposed to real numbers (e.g. A + B<C^D`B» C 6) A + D< 2 ˆ C); - ESC is simply unsound with respect to modulo arithmetics [8]. [8] Flanagan, C., Leino, K.R.M., Lillibridge, M., Nelson, G., Saxe, J., Stata, R.: Extended static checking for Java. PLDI 02,ACMSIGPLANNot.37(5),(2002) An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:100/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:102/121 J []? I Idx, Toc Some Difficulties (Among Others) Ignoring the value of any variable at any program point creates false alarms; Most precise abstract domains (e.g. polyhedra [7]) simply do not scale up; Tracing the fixpoint computation will produce huge log files crashing usual text editors; Example of Refinement: Octagons 8 1» x» 9 x + y» 78 1» y» 20 x ` y» 03 >< >: [7] P. Cousot and N. Halbwachs. Automatic discovery of linear restraintsamongvariables of a program. In 5 th POPL, pages84 97,Tucson,AZ,1978.ACMPress. 101 An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:101/121 J []? I Idx, Toc [9] A. Miné. A New Numerical Abstract Domain Based on Difference-Bound Matrices. In PADO 2001,LNCS2053,Springer,2001,pp An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:103/121 J []? I Idx, Toc

7 Difficulty 1 with Octagons Most operations are O(n 2 ) in space and O(n 3 ) in time, so does not scale up; Solution: - Parameterize with packs of variables/program points where to use octagons, - Automatize the determination of the packs by experimentation (to eliminate the useless ones); Second Experience (Preliminary) Report Comparative results (commercial software): 2,000 (false?) alarms, 3 days; Results: 20 2 (false?) alarms, 1h30mn, 2500 Gigabytes. Megabytes. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:104/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:106/121 J []? I Idx, Toc Difficulty 2 with Octagons 21 Benchmarks Must be correct with respect to the IEEE 754 floating-point arithmetic norm; Solution: sophisticated algorithmics to correctly handle concrete and abstract rounding errors time (s) kloc 21 An opened problem with polyhedra. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:105/121 J []? I Idx, Toc An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:107/121 J []? I Idx, Toc

8 Mastering Invariant Size Explosion The main loop invariant: a textual file over 4.5 Mb with 6,900 boolean interval assertions (x 2 [0; 1]) 9,600 interval assertions (x 2 [a; b]) 25,400 clock assertions (x +clk2 [a; b] ^ x ` clk 2 [a; b]) 19,100 additive octagonal assertions (a» x + y» b) 19,200 subtractive octagonal assertions (a» x ` y» b) 100 decision trees etc,... involving over 16,000 floating point constants (only 550 appearing in the program text) ˆ 75,000 LOCs. An Introduction to Abstract Interpretation, ľ P. Cousot, 24/3/03 3:108/121 J []? I Idx, Toc

The ASTRÉE Analyzer Patrick Cousot 2, Radhia Cousot 1,3, Jerôme Feret 2, Laurent Mauborgne 2, Antoine Miné 2, David Monniaux 1,2, and Xavier Rival 2 1 CNRS 2 École Normale Supérieure, Paris, France Firstname.Lastname@ens.fr

More information

The Verification Grand Challenge and Abstract Interpretation

The Verification Grand Challenge and Abstract Interpretation The Verification Grand Challenge and Abstract Interpretation Patrick Cousot École normale supérieure, 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot ens fr Visiting the Aeronautics and Astronautics

More information

Static Analysis by A. I. of Embedded Critical Software

Static Analysis by A. I. of Embedded Critical Software Static Analysis by Abstract Interpretation of Embedded Critical Software Julien Bertrane ENS, Julien.bertrane@ens.fr Patrick Cousot ENS & CIMS, Patrick.Cousot@ens.fr Radhia Cousot CNRS & ENS, Radhia.Cousot@ens.fr

More information

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors ESOP 2004 Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné École Normale Supérieure Paris FRANCE This work was partially supported by the ASTRÉE RNTL project

More information

Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software

Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software Design and Implementation of a Special-Purpose Static Program Analyzer for Safety-Critical Real-Time Embedded Software Bruno Blanchet 1, Patrick Cousot 1, Radhia Cousot 2, Jérôme Feret 1, Laurent Mauborgne

More information

Automatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013

Automatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013 Automatic Qualification of Abstract Interpretation-based Static Analysis Tools Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013 2 Functional Safety Demonstration of functional correctness Well-defined

More information

Why does ASTRÉE scale up?

Why does ASTRÉE scale up? Form Methods Syst Des (2009) 35: 229 264 DOI 10.1007/s10703-009-0089-6 Why does ASTRÉE scale up? Patrick Cousot Radhia Cousot Jérôme Feret Laurent Mauborgne Antoine Miné Xavier Rival Published online:

More information

Lecture 6. Abstract Interpretation

Lecture 6. Abstract Interpretation Lecture 6. Abstract Interpretation Wei Le 2014.10 Outline Motivation History What it is: an intuitive understanding An example Steps of abstract interpretation Galois connection Narrowing and Widening

More information

Building a specialized static analyzer

Building a specialized static analyzer Building a specialized static analyzer The Astrée experience Antoine Miné CNRS, École Normale Supérieure Security and Reliability of Software Systems 12 December 2008 Antoine Miné Building a specialized

More information

A Static Analyzer for Large Safety-Critical Software

A Static Analyzer for Large Safety-Critical Software A Static Analyzer for Large Safety-Critical Software (Extended Abstract) Bruno Blanchet Patrick Cousot Radhia Cousot Jérôme Feret Laurent Mauborgne Antoine Miné David Monniaux Xavier Rival ABSTRACT We

More information

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS

ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com

More information

Abstract interpretation

Abstract interpretation The Verification Grand Challenge and Abstract Interpretation Patrick Cousot École normale supérieure, Paris, France cousot ens fr www.di.ens.fr/~cousot Verified Software: Theories, Tools, Experiments Zürich,

More information

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS The Apron Library Bertrand Jeannet and Antoine Miné INRIA, CNRS/ENS CAV 09 conference 02/07/2009 Context : Static Analysis What is it about? Discover properties of a program statically and automatically.

More information

Verification of Embedded Software: Problems and Perspectives

Verification of Embedded Software: Problems and Perspectives Verification of Embedded Software: Problems and Perspectives Patrick COUSOT École Normale Supérieure 45 rue d Ulm 75230 Paris cedex 05, France Patrick.Cousot@ens.fr www.di.ens.fr/ cousot Radhia COUSOT

More information

SMT-Style Program Analysis with Value-based Refinements

SMT-Style Program Analysis with Value-based Refinements SMT-Style Program Analysis with Value-based Refinements Vijay D Silva Leopold Haller Daniel Kröning NSV-3 July 15, 2010 Outline Imprecision and Refinement in Abstract Interpretation SAT Style Abstract

More information

State of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond

State of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond Automatic Verification of Embedded Control Software with ASTRÉE and beyond Patrick Cousot Jerome C. Hunsaker Visiting Professor Department of Aeronautics and Astronautics, MIT cousot mit edu www.mit.edu/~cousot

More information

Formal proofs of code generation and verification tools

Formal proofs of code generation and verification tools Formal proofs of code generation and verification tools Xavier Leroy To cite this version: Xavier Leroy. Formal proofs of code generation and verification tools. Dimitra Giannakopoulou and Gwen Salaün.

More information

Abstract Interpretation of Floating-Point. Computations. Interaction, CEA-LIST/X/CNRS. February 20, Presentation at the University of Verona

Abstract Interpretation of Floating-Point. Computations. Interaction, CEA-LIST/X/CNRS. February 20, Presentation at the University of Verona 1 Laboratory for ModElling and Analysis of Systems in Interaction, Laboratory for ModElling and Analysis of Systems in Interaction, Presentation at the University of Verona February 20, 2007 2 Outline

More information

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné To cite this version: Antoine Miné. Relational Abstract Domains for the Detection of Floating-Point Run-Time

More information

Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships

Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships Liqian Chen 1,2 Antoine Miné 3,2 Ji Wang 1 Patrick Cousot 2,4 1 National Lab. for Parallel and Distributed Processing, Changsha,

More information

Algebraic Program Analysis

Algebraic Program Analysis Introduction to Algebraic Program Analysis Zachary Kincaid 1 Thomas Reps 2,3 1 Princeton University 2 University of Wisconsin-Madison 3 GrammaTech, Inc. January 8, 2018 1 Program analysis Design algorithms

More information

Static Analysis and Verification of Aerospace Software

Static Analysis and Verification of Aerospace Software Static Analysis and Verification of Aerospace Software by Abstract Interpretation joint work with: Patrick Cousot Julien Bertrane and Radhia Cousot École normale supérieure, Paris Patrick Cousot, Courant

More information

A Gentle Introduction to Program Analysis

A Gentle Introduction to Program Analysis A Gentle Introduction to Program Analysis Işıl Dillig University of Texas, Austin January 21, 2014 Programming Languages Mentoring Workshop 1 / 24 What is Program Analysis? Very broad topic, but generally

More information

Sendmail crackaddr - Static Analysis strikes back

Sendmail crackaddr - Static Analysis strikes back Sendmail crackaddr - Static Analysis strikes back Bogdan Mihaila Technical University of Munich, Germany December 6, 2014 Name Lastname < name@mail.org > ()()()()()()()()()... ()()() 1 / 25 Abstract Interpretation

More information

Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks

Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks Hierarchical Shape Abstraction of Dynamic Structures in Static Blocks Pascal Sotin and Xavier Rival INRIA 4 novembre 2013 P. Sotin, X. Rival (INRIA) Hierarchical Shape Abstraction 4 novembre 2013 1 / 29

More information

Towards an industrial use of FLUCTUAT on safety-critical avionics software

Towards an industrial use of FLUCTUAT on safety-critical avionics software Towards an industrial use of FLUCTUAT on safety-critical avionics software David Delmas 1, Eric Goubault 2, Sylvie Putot 2, Jean Souyris 1, Karim Tekkal 3 and Franck Védrine 2 1. Airbus Operations S.A.S.,

More information

ABSTRACT INTERPRETATION

ABSTRACT INTERPRETATION Master of Science in Engineering ABSTRACT INTERPRETATION Pascal Roman Artho, partho@hsr.ch Seminar Program Analysis and Transformation Rapperswil, January 7, 2015 Agenda Informal Example What is the idea

More information

Abstract Interpretation of Floating-Point Computations

Abstract Interpretation of Floating-Point Computations Abstract Interpretation of Floating-Point Computations Sylvie Putot Laboratory for ModElling and Analysis of Systems in Interaction, CEA-LIST/X/CNRS Session: Static Analysis for Safety and Performance

More information

Trace Partitioning in Abstract Interpretation Based Static Analyzers

Trace Partitioning in Abstract Interpretation Based Static Analyzers Trace Partitioning in Abstract Interpretation Based Static Analyzers DI, Laurent Mauborgne and Xavier Rival École Normale Supérieure, 45 rue d Ulm, 75 230 Paris cedex 05, France Emails: Laurent.Mauborgne@ens.fr

More information

Calculational Design of Semantics and Static Analyzers by Abstract Interpretation

Calculational Design of Semantics and Static Analyzers by Abstract Interpretation Calculational Design of Semantics and Static Analyzers by Abstract Interpretation Patrick Cousot École Normale Supérieure DMI, 45, rue d Ulm 75230 Paris cedex 05 France cousot@dmi.ens.fr http://www.dmi.ens.fr/

More information

the assembly level, since part of the structure of the program is lost at compile time the control structure is rather terse (branching to program poi

the assembly level, since part of the structure of the program is lost at compile time the control structure is rather terse (branching to program poi Abstract Interpretation-Based Certication of Assembly Code Xavier Rival Ecole Normale Superieure 45, rue d'ulm, 75230, Paris cedex 5, France rival@di.ens.fr Abstract. We present a method for analyzing

More information

A Scalable Segmented Decision Tree Abstract Domain

A Scalable Segmented Decision Tree Abstract Domain A Scalable Segmented Decision Tree Abstract Domain Patrick Cousot 2,3, Radhia Cousot 3,1, and Laurent Mauborgne 3,4 1 Centre National de la Recherche Scientifique 2 Courant Institute of Mathematical Sciences,

More information

Advanced Programming Methods. Introduction in program analysis

Advanced Programming Methods. Introduction in program analysis Advanced Programming Methods Introduction in program analysis What is Program Analysis? Very broad topic, but generally speaking, automated analysis of program behavior Program analysis is about developing

More information

Data-Flow Based Detection of Loop Bounds

Data-Flow Based Detection of Loop Bounds Data-Flow Based Detection of Loop Bounds Christoph Cullmann and Florian Martin AbsInt Angewandte Informatik GmbH Science Park 1, D-66123 Saarbrücken, Germany cullmann,florian@absint.com, http://www.absint.com

More information

Simplifying Loop Invariant Generation Using Splitter Predicates. Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University

Simplifying Loop Invariant Generation Using Splitter Predicates. Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University Simplifying Loop Invariant Generation Using Splitter Predicates Rahul Sharma Işil Dillig, Thomas Dillig, and Alex Aiken Stanford University Loops and Loop Invariants Loop Head x = 0; while( x

More information

Iterative Program Analysis Abstract Interpretation

Iterative Program Analysis Abstract Interpretation Iterative Program Analysis Abstract Interpretation Summary by Ben Riva & Ofri Ziv Soundness Theorem Theorem: If a computation fixed-point is sound, then its least-fixed-point is sound. More precisely,

More information

Weakly Relational Domains for Floating-Point Computation Analysis

Weakly Relational Domains for Floating-Point Computation Analysis Weakly Relational Domains for Floating-Point Computation Analysis Eric Goubault, Sylvie Putot CEA Saclay, F91191 Gif-sur-Yvette Cedex, France {eric.goubault,sylvie.putot}@cea.fr 1 Introduction We present

More information

Embedded Software Verification Challenges and Solutions. Static Program Analysis

Embedded Software Verification Challenges and Solutions. Static Program Analysis Embedded Software Verification Challenges and Solutions Static Program Analysis Chao Wang chaowang@nec-labs.com NEC Labs America Princeton, NJ ICCAD Tutorial November 11, 2008 www.nec-labs.com 1 Outline

More information

Symbolic Methods to Enhance the Precision of Numerical Abstract Domains

Symbolic Methods to Enhance the Precision of Numerical Abstract Domains Symbolic Methods to Enhance the Precision of Numerical Abstract Domains Antoine Miné École Normale Supérieure, Paris, France, mine@di.ens.fr, http://www.di.ens.fr/ mine Abstract We present lightweight

More information

Experimental Evaluation of Numerical Domains for Inferring Ranges

Experimental Evaluation of Numerical Domains for Inferring Ranges Available online at www.sciencedirect.com Electronic Notes in Theoretical Computer Science 334 (2018) 3 16 www.elsevier.com/locate/entcs Experimental Evaluation of Numerical Domains for Inferring Ranges

More information

Verasco: a Formally Verified C Static Analyzer

Verasco: a Formally Verified C Static Analyzer Verasco: a Formally Verified C Static Analyzer Jacques-Henri Jourdan Joint work with: Vincent Laporte, Sandrine Blazy, Xavier Leroy, David Pichardie,... June 13, 2017, Montpellier GdR GPL thesis prize

More information

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning

Lecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result.

Data Types. Every program uses data, either explicitly or implicitly to arrive at a result. Every program uses data, either explicitly or implicitly to arrive at a result. Data in a program is collected into data structures, and is manipulated by algorithms. Algorithms + Data Structures = Programs

More information

Program Analysis and Verification

Program Analysis and Verification Program Analysis and Verification 0368-4479 Noam Rinetzky Lecture 12: Interprocedural Analysis + Numerical Analysis Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav 1 Procedural program void main()

More information

Static Analysis and Verification of Aerospace Software by Abstract Interpretation

Static Analysis and Verification of Aerospace Software by Abstract Interpretation Static Analysis and Verification of Aerospace Software by Abstract Interpretation Julien Bertrane École normale supérieure, Paris Patrick Cousot, Courant Institute of Mathematical Sciences, NYU, New York

More information

Lecture Notes on Contracts

Lecture Notes on Contracts Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,

More information

Script started on Thu Oct 11 07:52: demo-astree/programs %./README

Script started on Thu Oct 11 07:52: demo-astree/programs %./README Script started on Thu Oct 11 07:52:30 2007 demo-astree/programs./readme ****************************************************** ****************************************************** *** *** *** Demonstration

More information

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning

Lecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,

More information

Abstract Interpretation Based Static Analysis Parameterized by Semantics

Abstract Interpretation Based Static Analysis Parameterized by Semantics Abstract Interpretation Based Static Analysis Parameterized by Semantics () Patrick Cousot École normale supérieure, DMI, 45 rue d Ulm, 75230 Paris cedex 05, France cousot@dmi.ens.fr http://www.dmi.ens.fr/

More information

Improving Timing Analysis for Matlab Simulink/Stateflow

Improving Timing Analysis for Matlab Simulink/Stateflow Improving Timing Analysis for Matlab Simulink/Stateflow Lili Tan, Björn Wachter, Philipp Lucas, Reinhard Wilhelm Universität des Saarlandes, Saarbrücken, Germany {lili,bwachter,phlucas,wilhelm}@cs.uni-sb.de

More information

Improving the Static Analysis of Loops by Dynamic Partitioning Techniques

Improving the Static Analysis of Loops by Dynamic Partitioning Techniques Improving the Static Analysis of Loops by Dynamic Partitioning echniques Matthieu Martel CEA - Recherche echnologique LIS-DSI-SLA CEA F91191 Gif-Sur-Yvette Cedex, France Matthieu.Martel@cea.fr Abstract

More information

Duet: Static Analysis for Unbounded Parallelism

Duet: Static Analysis for Unbounded Parallelism Duet: Static Analysis for Unbounded Parallelism Azadeh Farzan and Zachary Kincaid University of Toronto Abstract. Duet is a static analysis tool for concurrent programs in which the number of executing

More information

Automatically Generating Features for Learning Program Analysis Heuristics for C-Like Languages

Automatically Generating Features for Learning Program Analysis Heuristics for C-Like Languages Automatically Generating Features for Learning Program Analysis Heuristics for C-Like Languages Kwonsoo Chae Korea University Joint work with Hakjoo Oh (Korea University), Kihong Heo (Seoul National University),

More information

Static Analysis of Embedded Systems

Static Analysis of Embedded Systems Static Analysis of Embedded Systems Xavier RIVAL rival@di.ens.fr Outline Case study Certification of embedded softwares Demo Static Analysisof Embedded Systems p.2/12 Ariane 5 Flight 501 Ariane 5: sattelite

More information

Interprocedurally Analysing Linear Inequality Relations

Interprocedurally Analysing Linear Inequality Relations Interprocedurally Analysing Linear Inequality Relations Helmut Seidl, Andrea Flexeder and Michael Petter Technische Universität München, Boltzmannstrasse 3, 85748 Garching, Germany, {seidl, flexeder, petter}@cs.tum.edu,

More information

Fast Algorithms for Octagon Abstract Domain

Fast Algorithms for Octagon Abstract Domain Research Collection Master Thesis Fast Algorithms for Octagon Abstract Domain Author(s): Singh, Gagandeep Publication Date: 2014 Permanent Link: https://doi.org/10.3929/ethz-a-010154448 Rights / License:

More information

Inductive Invariant Generation via Abductive Inference

Inductive Invariant Generation via Abductive Inference Inductive Invariant Generation via Abductive Inference Isil Dillig Department of Computer Science College of William & Mary idillig@cs.wm.edu Thomas Dillig Department of Computer Science College of William

More information

A New Abstraction Framework for Affine Transformers

A New Abstraction Framework for Affine Transformers A New Abstraction Framework for Affine Transformers Tushar Sharma and Thomas Reps SAS 17 Motivations Prove Program Assertions Function and loop summaries Sound with respect to bitvectors A NEW ABSTRACTION

More information

An Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland

An Introduction to Heap Analysis. Pietro Ferrara. Chair of Programming Methodology ETH Zurich, Switzerland An Introduction to Heap Analysis Pietro Ferrara Chair of Programming Methodology ETH Zurich, Switzerland Analisi e Verifica di Programmi Universita Ca Foscari, Venice, Italy Outline 1. Recall of numerical

More information

Using widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain

Using widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain Using widenings to infer loop invariants inside an SMT solver, or: A theorem prover as abstract domain K. Rustan M. Leino and Francesco Logozzo Microsoft Research, Redmond, WA, USA fleino,logozzog@microsoft.com

More information

Automatic synthesis of switching controllers for linear hybrid systems: Reachability control

Automatic synthesis of switching controllers for linear hybrid systems: Reachability control Automatic synthesis of switching controllers for linear hybrid systems: Reachability control Massimo Benerecetti and Marco Faella Università di Napoli Federico II, Italy Abstract. We consider the problem

More information

Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security

Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security Static Analysis: Overview, Syntactic Analysis and Abstract Interpretation TDDC90: Software Security Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2014 Outline Overview Syntactic Analysis Abstract

More information

Script started on Mon Oct 15 08:21: demo-astree/programs %./README

Script started on Mon Oct 15 08:21: demo-astree/programs %./README Script started on Mon Oct 15 08:21:18 2007 demo-astree/programs./readme ****************************************************** ****************************************************** *** *** *** Demonstration

More information

Static Analysis of the Accuracy in Control Systems : Principles and Experiments

Static Analysis of the Accuracy in Control Systems : Principles and Experiments Static Analysis of the Accuracy in Control Systems : Principles and Experiments Eric Goubault 1, Sylvie Putot 1, Philippe Baufreton 2, and Jean Gassino 3 1 CEA/LIST 91191 Gif-sur-Yvette, {eric.goubault,sylvie.putot}@cea.fr

More information

CODE ANALYSES FOR NUMERICAL ACCURACY WITH AFFINE FORMS: FROM DIAGNOSIS TO THE ORIGIN OF THE NUMERICAL ERRORS. Teratec 2017 Forum Védrine Franck

CODE ANALYSES FOR NUMERICAL ACCURACY WITH AFFINE FORMS: FROM DIAGNOSIS TO THE ORIGIN OF THE NUMERICAL ERRORS. Teratec 2017 Forum Védrine Franck CODE ANALYSES FOR NUMERICAL ACCURACY WITH AFFINE FORMS: FROM DIAGNOSIS TO THE ORIGIN OF THE NUMERICAL ERRORS NUMERICAL CODE ACCURACY WITH FLUCTUAT Compare floating point with ideal computation Use interval

More information

Analysis of Software Artifacts

Analysis of Software Artifacts Analysis of Software Artifacts Properties with ESC/Java Jonathan Aldrich 1 ESC/Java A checker for Java programs Finds null pointers, array dereferences Checks Hoare logic specifications Expressed in Java

More information

Static program checking and verification

Static program checking and verification Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness

More information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this

More information

Abstract debugging of higher-order imperative languages

Abstract debugging of higher-order imperative languages Abstract debugging of higher-order imperative languages François Bourdoncle DIGITAL Paris Research Laboratory Centre de Mathématiques Appliquées 85, avenue Victor Hugo Ecole des Mines de Paris 92500 Rueil-Malmaison

More information

Learning a Variable-Clustering Strategy for Octagon from Labeled Data Generated by a Static Analysis

Learning a Variable-Clustering Strategy for Octagon from Labeled Data Generated by a Static Analysis Learning a Variable-Clustering Strategy for Octagon from Labeled Data Generated by a Static Analysis Kihong Heo 1, Hakjoo Oh 2, and Hongseok Yang 3 1 Seoul National University 2 Korea University 3 University

More information

Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C

Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C Structuring an Abstract Interpreter through Value and State Abstractions: EVA, an Evolved Value Analysis for Frama C David Bühler CEA LIST, Software Safety Lab Frama-C & SPARK Day 2017 May 30th, 2017 David

More information

Loop Bound Analysis based on a Combination of Program Slicing, Abstract Interpretation, and Invariant Analysis

Loop Bound Analysis based on a Combination of Program Slicing, Abstract Interpretation, and Invariant Analysis Loop Bound Analysis based on a Combination of Program Slicing, Abstract Interpretation, and Invariant Analysis Andreas Ermedahl, Christer Sandberg, Jan Gustafsson, Stefan Bygde, and Björn Lisper Department

More information

Precise Thread-Modular Abstract Interpretation of Concurrent Programs using Relational Interference Abstractions

Precise Thread-Modular Abstract Interpretation of Concurrent Programs using Relational Interference Abstractions Precise Thread-Modular Abstract Interpretation of Concurrent Programs using Relational Interference Abstractions Raphaël Monat 1 and Antoine Miné 2 1 École Normale Supérieure de Lyon and École Normale

More information

Static Analysis. Systems and Internet Infrastructure Security

Static Analysis. Systems and Internet Infrastructure Security Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Static Analysis Trent

More information

Predictable paging in real-time systems: an ILP formulation

Predictable paging in real-time systems: an ILP formulation Predictable paging in real-time systems: an ILP formulation Damien Hardy Isabelle Puaut Université Européenne de Bretagne / IRISA, Rennes, France Abstract Conventionally, the use of virtual memory in real-time

More information

TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS*

TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS* TVLA: A SYSTEM FOR GENERATING ABSTRACT INTERPRETERS* Tal Lev-Ami, Roman Manevich, and Mooly Sagiv Tel Aviv University {tla@trivnet.com, {rumster,msagiv}@post.tau.ac.il} Abstract TVLA (Three-Valued-Logic

More information

An Approach to Behavioral Subtyping Based on Static Analysis

An Approach to Behavioral Subtyping Based on Static Analysis TACoS 04 Preliminary Version An Approach to Behavioral Subtyping Based on Static Analysis Francesco Logozzo 1 STIX - École Polytechnique F-91128 Palaiseau, France Abstract In mainstream object oriented

More information

Timing analysis and timing predictability

Timing analysis and timing predictability Timing analysis and timing predictability Architectural Dependences Reinhard Wilhelm Saarland University, Saarbrücken, Germany ArtistDesign Summer School in China 2010 What does the execution time depends

More information

Log System Based on Software Testing System Design And Implementation

Log System Based on Software Testing System Design And Implementation 4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015) Log System Based on Software Testing System Design And Implementation Yan Liu1, a, Dahai Jin1,

More information

Static and dynamic analysis: synergy and duality

Static and dynamic analysis: synergy and duality Static and dynamic analysis: synergy and duality Michael Ernst MIT Computer Science & Artificial Intelligence Lab http://pag.csail.mit.edu/~mernst/ PASTE June 7, 2004 Michael Ernst, page 1 Goals Theme:

More information

Learning Analysis Strategies for Octagon and Context Sensitivity from Labeled Data Generated by Static Analyses

Learning Analysis Strategies for Octagon and Context Sensitivity from Labeled Data Generated by Static Analyses Noname manuscript No. (will be inserted by the editor) Learning Analysis Strategies for Octagon and Context Sensitivity from Labeled Data Generated by Static Analyses Kihong Heo Hakjoo Oh Hongseok Yang

More information

RATCOP: Relational Analysis Tool for Concurrent Programs

RATCOP: Relational Analysis Tool for Concurrent Programs RATCOP: Relational Analysis Tool for Concurrent Programs Suvam Mukherjee 1, Oded Padon 2, Sharon Shoham 2, Deepak D Souza 1, and Noam Rinetzky 2 1 Indian Institute of Science, India 2 Tel Aviv University,

More information

Scientific Computing. Error Analysis

Scientific Computing. Error Analysis ECE257 Numerical Methods and Scientific Computing Error Analysis Today s s class: Introduction to error analysis Approximations Round-Off Errors Introduction Error is the difference between the exact solution

More information

On the Relative Completeness of Bytecode Analysis versus Source Code Analysis

On the Relative Completeness of Bytecode Analysis versus Source Code Analysis On the Relative Completeness of Bytecode Analysis versus Source Code Analysis Francesco Logozzo & Manuel Fähndrich Microsoft Research {logozzo,maf}@microsoft.com Abstract. We discuss the challenges faced

More information

StackAnalyzer Proving the Absence of Stack Overflows

StackAnalyzer Proving the Absence of Stack Overflows StackAnalyzer Proving the Absence of Stack Overflows AbsInt GmbH 2012 2 Functional Safety Demonstration of functional correctness Well-defined criteria Automated and/or model-based testing Formal techniques:

More information

InterprocStack analyzer for recursive programs with finite-type and numerical variables

InterprocStack analyzer for recursive programs with finite-type and numerical variables InterprocStack analyzer for recursive programs with finite-type and numerical variables Bertrand Jeannet Contents 1 Invoking InterprocStack 1 2 The Simple language 2 2.1 Syntax and informal semantics.........................

More information

A Note on Karr s Algorithm

A Note on Karr s Algorithm A Note on Karr s Algorithm Markus Müller-Olm ½ and Helmut Seidl ¾ ½ FernUniversität Hagen, FB Informatik, LG PI 5, Universitätsstr. 1, 58097 Hagen, Germany mmo@ls5.informatik.uni-dortmund.de ¾ TU München,

More information

Control-Flow Refinment via Partial Evaluation

Control-Flow Refinment via Partial Evaluation Control-Flow Refinment via Partial Evaluation Jesús Doménech 1, Samir Genaim 2, and John P. Gallagher 3 1 Universidad Complutense de Madrid, Spain jdomenec@ucm.es 2 Universidad Complutense de Madrid, Spain

More information

The Apron Library. Antoine Miné. CEA Seminar December the 10th, CNRS, École normale supérieure

The Apron Library. Antoine Miné. CEA Seminar December the 10th, CNRS, École normale supérieure Antoine Miné CNRS, École normale supérieure CEA Seminar December the 10th, 2007 CEA December the 10th, 2007 Antoine Miné p. 1 / 64 Outline Introduction Introduction Main goals Theoretical background The

More information

4. Number Representations

4. Number Representations Educational Objectives You have a good understanding how a computer represents numbers. You can transform integers in binary representation and perform computations. You understand how the value range

More information

Applications of Program analysis in Model-Based Design

Applications of Program analysis in Model-Based Design Applications of Program analysis in Model-Based Design Prahlad Sampath (Prahlad.Sampath@mathworks.com) 2018 by The MathWorks, Inc., MATLAB, Simulink, Stateflow, are registered trademarks of The MathWorks,

More information

Automatically Testing Implementations of Numerical Abstract Domains

Automatically Testing Implementations of Numerical Abstract Domains Automatically Testing Implementations of Numerical Abstract Domains ABSTRACT Alexandra Bugariu Department of Computer Science, ETH Zurich Switzerland alexandra.bugariu@inf.ethz.ch Maria Christakis MPI-SWS

More information

Frama-C Value Analysis

Frama-C Value Analysis Frama-C Value Analysis Séminaire CAP TRONIC Virgile Prevosto virgile.prevosto@cea.fr June 18 th, 2015 Outline Introduction Abstract domains Arithmetic Memory Methodology Basic commands Parameters Introduction

More information

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Program verification. Generalities about software Verification Model Checking. September 20, 2016 Program verification Generalities about software Verification Model Checking Laure Gonnord David Monniaux September 20, 2016 1 / 43 The teaching staff Laure Gonnord, associate professor, LIP laboratory,

More information

Static Memory and Timing Analysis of Embedded Systems Code

Static Memory and Timing Analysis of Embedded Systems Code Static Memory and Timing Analysis of Embedded Systems Code Christian Ferdinand Reinhold Heckmann Bärbel Franzen AbsInt Angewandte Informatik GmbH Science Park 1, D-66123 Saarbrücken, Germany Phone: +49-681-38360-0

More information

arxiv: v1 [cs.pl] 1 Dec 2016

arxiv: v1 [cs.pl] 1 Dec 2016 NSAD 2016 arxiv:1612.00277v1 [cs.pl] 1 Dec 2016 Sparsity Preserving Algorithms for Octagons Abstract Jacques-Henri Jourdan MPI-SWS, Inria Paris Known algorithms for manipulating octagons do not preserve

More information

Program Analysis using Symbolic Ranges

Program Analysis using Symbolic Ranges Program Analysis using Symbolic Ranges Sriram Sankaranarayanan, Franjo Ivančić, Aarti Gupta NEC Laboratories America, {srirams,ivancic,agupta}@nec-labs.com Abstract. Interval analysis seeks static lower

More information

Decomposition Instead of Self- Composition for Proving the Absence of Timing Channels

Decomposition Instead of Self- Composition for Proving the Absence of Timing Channels Decomposition Instead of Self- Composition for Proving the Absence of Timing Channels PLDI June 20th, 2017 Timos Antonopoulos, Yale Paul Gazzillo, Yale Michael Hicks, UMD Eric Koskinen, Yale Tachio Terauchi,

More information

Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra

Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra Using Counterexamples for Improving the Precision of Reachability Computation with Polyhedra Chao Wang 1, Zijiang Yang 2, Aarti Gupta 1, and Franjo Ivančić 1 1 NEC Laboratories America, Princeton, NJ 08540,

More information

Timing Analysis Enhancement for Synchronous Program

Timing Analysis Enhancement for Synchronous Program Timing Analysis Enhancement for Synchronous Program Extended Abstract Pascal Raymond, Claire Maiza, Catherine Parent-Vigouroux, Fabienne Carrier, and Mihail Asavoae Grenoble-Alpes University Verimag, Centre

More information